#ifndef __WORKER_H__
#define __WORKER_H__

#include <pthread.h>
#include <stdatomic.h>

typedef struct tag_worker worker_t;

/**
 * 创建一个worker
 * 返回worker指针，失败返回NULL
 * start_routine为NULL，则创建的线程立马退出
 * 线程创建后会立刻执行start_routine，函数返回则立即退出线程
 */
worker_t *worker_create(void *context, void (*start_routine)(void *));

/**
 * 销毁一个worker
 * 返回1表示成功，0表示失败
 */
void worker_destroy(worker_t *worker);

#endif // __WORKER_H__
